#include<stdio.h>
#define MAXX 100

int max(int a,int b){
    return a>b?a:b;
}
void knapsack(int n,int C,int w[],int v[],int x[])
{
    int dp[105][305]={0};
	for(int i=1;i<=n;i++)
		for(int j=0;j<=C;j++)
			if(w[i-1]>j)
				dp[i][j]=dp[i-1][j];
			else
				dp[i][j]=max(dp[ i-1 ][j],dp[ i-1 ][ j-w[i-1] ] + v[i-1] ); 
    int j=C;
	for(int i=n;i>=1;i--)
		if(dp[i-1][j]!=dp[i][j])
		{
			x[i-1]=1;
			j-=w[i-1];
		} 
		else
			x[i-1]=0;
	return;	
}

int main(){
int n,C;
int w[MAXX],v[MAXX],x[MAXX];
   scanf("%d %d",&n,&C);
   for(int i=0;i<n;i++)
     scanf("%d",&w[i]);
   for(int i=0;i<n;i++)
     scanf("%d",&v[i]);   
   knapsack(n,C,w,v,x);
   for(int i=0;i<n;i++)
   	printf("%d,",x[i]);
   int vsum=0;
   for(int i=0;i<n;i++){
     vsum+=x[i]*v[i];
    // printf("%d %d",x[i],v[i]);
     }
   printf("%d",vsum);
   return 1;
}


